.. _cmcIxSetSpeedPattern: cmcIxSetSpeedPattern ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmcIxSetSpeedPattern ([in] VT_I4 BoardId, [in] VT_I4 MapIndex, [in] VT_I4 IsVectorSpeed, [in] VT_I4 SpeedMode, [in] VT_R8 IniRatio, [in] VT_R8 EndiRatio, [in] VT_R8 VelRatio, [in] VT_R8 AccRatio, [in] VT_R8 DecRatio) DESCRIPTION ````````````` - cmcIxSetSpeedPattern은 “기본보간제어”의 이송 속도에 대한 환경설정을 정의합니다. 사용자가 지정한 작업 속도는 “IsVectorSpeed”의 설정값이 ‘TRUE’이면 벡터 스피드, ‘FALSE’이면 마스터 스피드가 적용됩니다. “벡터속도”에 대한 자세한 내용은 아래의 “REFERENCE” 항목을 참조하십시오. \ - 보간 작업 속도를 벡터속도로 설정해야만 하는 특별한 경우를 제외하고는 보간 작업 속도를 마스터속도로 설정하는 것이 모터의 최대속도를 활용하는데 있어서 편리합니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmc 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardId: 사용자가 설정한 디바이스(보드) ID. ▶ MapIndex: 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmcIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다. ▶ IsVertorSpeed : cmcIxSetSpeedPattern함수의 인자이며, TRUE로 설정했을 경우에는 벡터스피드 모드로, FALSE로 설정했을 경우에는 마스터스피드 모드로 설정됩니다. ▶ SpeedMode : cmcIxSetSpeedPattern 함수의 인자이며, 속도모드를 설정합니다. 설정값은 다음과 같습니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning "| 0 또는 cmcSPEED_CONDSTANT", " | CONSTANT 속도모드 => 가감속을 수행하지 않습니다." "| 1 또는 cmcSPEED_TRAPEZOIDAL"," | TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 | 수행합니다." "| 2 또는 cmcSPEED_SCURVE", " | S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다." ▶ IniRatio: cmcIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 초기속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 설정 합니다. ▶ EndiRatio: cmcIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 최종속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 가속도를 설정합니다. ▶ VelRatio : cmcIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 작업속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 설정 합니다. ▶ AccRatio : cmcIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 가속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 가속도를 설정합니다. ▶ DecRatio : cmcIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 감속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 감속도를 설정합니다. RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | 음수 | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ REFERENCE ````````````` .. wraning:: 보간 제어의 속도에는 마스터 속도 모드와 백터 속도 모드가 존재합니다. 본 함수의 설명을 잘 읽고, 보간 속도 설정에 주의를 기울여 주시기 바랍니다. 특히 서로 다른 속성을 가지고 있는 서보드라이브에서는 보간 속도 설정에 반드시 주의를 요합니다. - 직선 보간 이동시에 작업속도의 적용 \ - 마스터 속도 모드(Master Speed Mode)로 보간 작업시에는 각 축의 속도가 각 축의 이동거리에 비례하여 자동으로 설정됩니다. 이때 cmcIxSetSpeedPattern() 함수의 WorkSpeed 매개 변수(媒介變數)를 통하여 지정되는 보간 작업속도는 마스터속도로 적용됩니다. 각 보간 이동시에 이동거리가 가장 큰 축을 “마스터축”이라고 하며 마스터축의 속도를 “마스터속도”라 합니다. 각 보간 이동시에 마스터축의 속도는 사용자가 지정한 보간 작업속도로 설정되며, 마스터축 이외의 다른 축의 속도는 마스터축과 해당 축의 이동 거리 비에 따라서 자동으로 설정됩니다. \ - 보간 작업속도의 적용 예 cmcIxSetSpeedPattern() 함수의 WorkSpeed를 10000으로 설정하고 X,Y,Z축의 보간 작업을 수행하는 경우에 이동 거리에 따른 각 축의 속도 관계는 아래와 같습니다(표에서 배경이 회색으로 되어 있는 것은 마스터축임을 의미하는 것입니다). .. image:: ../../../res/8-1.jpg .. image:: ../../../res/8-2.jpg .. code-block:: c++ :linenos: :emphasize-lines: 5 #define DEV0 0 // 디바이스 번호 => 0 #define MAP_IDX 0 // 맵번호 => 0 // 코드의 간결성을 위하여 앞에서 행해져야할 초기화 루틴은 모두 생략 // …… // X1축과 Y1축을 0번 맵번호로 맵핑 // cmcIxMapAxes (DEV0, MAP_IDX, 0_MASK | cmY1_MASK, 0); // 속도패턴 설정 : 벡터속도 1000 PPS, 벡터가속도 10000 PPS/sec (가속시간 0.1초) // // 여기서 2번째 인자가 cmcTRUE 이면, Vector 속도 모드를 의미한다. cmcIxSetSpeedPattern(DEV0, MAP_IDX, ,cmcTRUE, cmcMODE_S, 1000, 10000, 10000); // 직선보간이동 수행 : (3000, 4000) 만큼 이동 // double fDistList[2]={3000, 4000}; cmcIxLine (DEV0, MAP_IDX, fDistList, cmcFALSE); .. image:: ../../../res/8-3.jpg